1. Field of the Invention
The present invention relates to a method and apparatus for determining whether a phantom switch condition exists in an encoder array.
2. Description of the Related Art
Typical encoder arrays, for example for a typewriter keyboard have a plurality of conductors which are normally spaced apart. Each intersection of a row and column constitutes a crosspoint switch and can be closed by pressing the conductors together, usually through a switch mechanism actuated by a key. Typically, the conductors are manufactured on sheets of flexible material so that one conductor can contact the other conductor when subjected to an external force, generated by the appropriate switch mechanism. As the external force is removed, the sheet will return to its original condition, i.e. non-contact position. This kind of encoder is always used together with a CPU to generate inputting signals and also with typewriters, processors, computer terminals etc.
One of the problems is that the processing circuitry must be capable of handling the simultaneous closure of two or more crosspoint switches. This situation can occur as an operator presses a second or third key before releasing a first or second key. This overlapping of closed switches is referred to as rollover.
Basically, there are three methods of handling a simultaneous crosspoint closure situation. In the "no-rollover" method only the first key stroke is recognized and provides a valid output signal. Once a crosspoint is closed no other key will be recognized as valid output data until the first key is released. In the "two-key rollover" method, the first and second keys will be recognized as valid and corresponding data will be outputted while other keys will not be recognized as valid. In the "N-key rollover" method, a plurality of the crosspoints can be pressed at the same time and each closure can be recognized and deliver a valid output data.
A major problem of the N-key rollover in crosspoint encoders is the so-called phantom key or phantom switch situation. This will be described in detail below. Briefly, a phantom switch condition arises when three switches in a rectangular pattern in the encoder's matrix are depressed simultaneously. This results in an electrical path being formed which falsely indicates to the processing circuitry that the crosspoint at the fourth corner of the rectangle is closed. If nothing is done to correct this phantom switch condition, the result would be the generation of an output signal corresponding to a switch which has never been pressed.
This problem can be simply solved by limiting the encoder to no rollover or two-key rollover, but this will eliminate the benefits of the N-key rollover for high speed typing.
The above methods are all software based. This phantom key condition can also be solved through installing a diode between two conductors. But this cannot be applied to a membrane switch and it costs too much.
U.S. Pat. No. 4,420,744 (hereinafter referred to as 744) teaches a method which can determine whether there is a phantom key condition in an encoder matrix. In U.S. '744, the status of each crosspoint switch is determined and stored in an array. This array is then scanned by selecting a pair of rows in the array, comparing the information in each column position of the rows to determine if there are two columns where each row indicates a closed crosspoint switch, and repeating the above selecting and comparing steps until all combinations of row pairs has been selected.
In the method described in '744, a valid signal is outputted only after repeating all comparisons of combinations of row pairs. However this takes much time, since it needs to compare all combinations and also requires an initial scan of the entire matrix.
GB-A-2162351 describes a similar method for determining the phantom key condition from an array representing the status of each crosspoint switch.